The invention relates generally to a router for a telecommunications switching system that is easily programmable to provide different routing algorithms for various calls and is particularly adopted for use in a multiple switching node system either as a central, host resident unit, or as a distributed router resident in the switching nodes.
An example of a switching system to which the present invention applies is described in U.S. Pat. No. 5,544,163, Expandable Telecommunications System, the contents of which are incorporated by reference herein. A telecommunication switching node described therein has line cards with multiple ports connected to subscriber""s telephone lines or to other devices such as PSTN trunks. The switching node also includes a switch/matrix card and at least two system buses for switching calls received on one port to another port in the system. One of these buses is an incoming bus that passes messages from the line cards to the matrix card and the other is an outgoing bus which transmits messages from the matrix card to the line cards. In order to perform switching on calls, the switching node receives information from and transmits information to line card ports over the system buses at predetermined times known as time slots. Each time slot generally corresponds with a port on the switch. The time slots assigned to each port and the software applications that manage calls on those time slots are generally termed xe2x80x9cchannels.xe2x80x9d
Overall control of the system is exercised by the host, i.e., a group of software applications that typically reside on a computer. The switching nodes are interconnected by an internodal switching network. A second network termed the xe2x80x9chost network,xe2x80x9d interconnects connects the switching nodes and the host computer for supervisory control.
The host, the switching nodes and the line cards include their own software protocol applications which instruct them on how to handle incoming calls. A Layer 5 (L5) protocol application in the host manages calls at the system level; Layer 3 (L3) protocol applications in the line cards handle calls at the line card level of the system and a Layer 4 protocol application (L4) i.e. a Central Call Processing(CPP) application in the switch, manages calls at the switch level.
In an example of a switching system to which the present invention applies the L4 application is programmable by the system operator and this enables the system operator to decide which call processing operations will be managed by the L5 applications and which operations will be managed by the L4 application. The L4 application is separated into software objects that function as state machines that are separately dedicated to specific tasks for each port in the switching node. The term xe2x80x9cchannelxe2x80x9d thus encompasses the data paths between each port and the switch/matrix and the software objects in the switch/matrix that directly supervise the use of these paths. The primary software objects in the L4 application are a channel state machine (CH), a call management state machine (CM) and a physical connection state machine (PC). Each channel in the node includes a static instance of these primary objects. The L4 application also includes secondary software objects which include an Interworking state machine, a DSP Manager state machine, a Switch Manager state machine, a Conference Manager state machine and a Distributed Router state machine.
The CH in the L4 application is a programmable protocol language (PPL) object which manages channel state information for its associated channel. Channel state information includes information about the state of each of the other objects in the channel. The L4 CM is a PPL object which manages information about the state of any call in the associated channel. The PC is a software object which manages PCM switch connection information for its channel. The PC maintains information on whether a channel has a voice path connection active with another channel.
The Interworking State Machine helps to support internal information routing and it gives the user the capability to specify the call model on a channel by channel basis. An instance of the Interworking object is dynamically created as it is needed for each channel. The DSP Manager state machine allocates DSP resources, routes DSP requests to the appropriate DSPs and reports the results to the CH. The Switch Manager state machine and its data structures also manage simple connect and disconnect requests from the PC for all switching types, including local time slot switching and ring switching. The Conference Manager State Machine manages conference calls by managing the DSP resources and issuing commands to the DSP resources. The conference manager also manages channel connections to the DSP. The Distributed Router state machine is an object that fields requests to route information based on a number of parameters in the message. Information routing in the switching system is an important function, especially in the use of external resources such as PSTN, long distance service, etc.
A conventional router arrangement can be used to provide the routing functions. However, since the layer 4 software is now highly flexible, in that it can be readily modified by the system operator, it is highly desirable that the operator be given similar flexibility in structuring the routing functions.
Therefore, the principle object of the present invention, is to provide flexibility in the routing functions performed in the switching system. Another object is to provide a router that can be centralized in a host computer or distributed among various switching nodes. The router is easily programmable by the system operator to provide different routing algorithms for various calls. The router can be used in a system with a single switching node. However, it is particularly adopted for use in a multiple-switching-node system, either as a central, host resident unit, or as a distributed router resident on the switching nodes. A router embodying the invention uses router tables that are readily configurable by the system operator to route calls based on predefined routing criteria in the incoming or outgoing call.
Specifically in the preferred embodiment of the invention, the routing table entries include fields that enable the operator to logically combine various parameter values to determine how each call is to be routed. Calls may be routed based on the incoming port, a resource group (group of channels that connect to the same external service), an identifier of the calling or called party, the time of day or other desired criteria. Each entry in the routing table includes a field containing a route group ID, which is a key for routes having certain common criteria, a field containing a system-operator-selected, predefined criteria such as called party number; and a logic field that contains an identification of a call-termination channel group and/or a specification of a logical combination of other entries in the routing table. The field values in each entry maybe entered by the system operator through a conventional software tool with display screens. The field values maybe compiled into application programming interface (API) messages and downloaded into the router. Alternatively, the router may interpret the entries without prior compilation. Thereafter, when the CH receives a request to route a call from a line card port, the CH through the CM provides the router with routing criteria for the call and the router uses the compiled routing table to determine how to process the call.